package com.swanclouds.model.task;

import com.swanclouds.model.DeviceEntity;
import com.swanclouds.redfish.common.redfish.Status;
import java.util.List;
import java.util.Map;

/**
 * @author 李文强
 * description
 */
public interface Task extends DeviceEntity {

    /**
     * 当前任务资源的访问路径
     * @return String
     */
    String getDataId();

    /**
     * 任务服务资源模型的OData描述信息
     * @return String
     */
    String getContext();

    /**
     * 任务服务资源的类型
     * @return String
     */
    String getType();

    /**
     * 任务服务资源的ID
     * @return String
     */
    String getId();

    /**
     * 任务服务资源的名称
     * @return String
     */
    String getName();

    /**
     * 系统时间
     * @return String
     */
    String getDataTime();

    /**
     * 对已完成的任务的处理方
     * 法。
     * ● Oldest：新任务覆盖最
     * 早的任务
     * ● Manual：不进行覆盖
     * @return String
     */
    String getCompletedTaskOverWritePolicy();

    /**
     * 任务服务资源的描述信息
     * @return String
     */
    String getDescription();

    /**
     * 任务状态变化时是否上报
     * 事件。
     * ● true
     * ● false
     * @return Boolean
     */
    Boolean getLifeCycleEventOnTaskStateChange();

    /**
     * 任务服务使能状态
     * @return Boolean
     */
    Boolean getServiceEnabled();

    /**
     * 任务服务资源的状态，包
     * 括：
     * ● Status：使能状态
     * ● Health：健康状态
     * ● Severit
     * @return java.util.List
     */
    List<Status> getStatus();

    /**
     * 任务列表
     * @return java.util.List
     */
    List<Map<String,Object>> getMembers();

    /**
     * 当前运行的任务数量
     * @return Integer
     */
    Integer getMembersCount();

    /**
     * 任务列表
     * @return java.util.List
     */
    List<Map<String,Object>> getTasks();
}
